public class OperatorDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 4;

        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        System.out.println(7.9 % b);
        System.out.println(a % 3.5);


        char j = 'A';
        char k = 'a';

        System.out.println(a+j); // 得到75，证明j的值为65
        System.out.println(a+k); // 得到75，证明k的值为97

        // char ch = a + j; 会报错，int无法转为char
        int  ch = a + j;
        System.out.println(ch);

        //  int k = 1 + 6.88; 会报错,只可以得到double类型的数据，不可以得到int类型数据，除非对6.88强制类型转换

        double d = 10 + 6.5;
        System.out.println(d);


        System.out.println("itheima" + "www"); //itheimawww
        System.out.println("itheima" + 999); // itheima999
        System.out.println(777 + "itheima"); //77itheima
        System.out.println("itheima"+ 6 + 88); //itheima688
        System.out.println(6 + 88 + "itheima"); //94itheima


        // 赋值运算符
        a = 10;
        System.out.println(a);

        // += 把左边右边的数相加赋值给左边
        i += 10;
        System.out.println(i);

        //自增运算符
        // 变量值加1减1，单独使用
        System.out.println(a++);
        System.out.println(a--);


        // 参与操作使用
        int a = 10;
        int j = a++;
        System.out.println(j); //10
        int j = ++a;
        System.out.println(j); //11


        // 关系运算符
        //== != > >= < <=
        System.out.println(2>4); //false


        System.out.println(d = j); //不小心将 == 写成= ，表示将j赋值给d，输出d

        //逻辑运算符
        int i = 10;
        int j = 20;
        int k = 30;

        //&与
        System.out.println((i<j)&(i<k));// true
        System.out.println((i<j)&(i>k));// false

        // | 或
        System.out.println((i<j)|(i<k));// true
        System.out.println((i<j)|(i>k));// true

        //^ 异或，相同为false,不同为true
        System.out.println((i>j)^(i>k));  //false
        System.out.println((i>j)^(i<k));  //false

        //! 逻辑非
        System.out.println(i>j); //false
        System.out.println(!(i>j)); //true
        System.out.println(!!(i>j)); //false


        // && 短路与，左边不符合，右边不执行
        System.out.println((i++>100) & (j+=>100)); //false ,此时i值为11，k值为21
        System.out.println((i++>100) && (j+=>100)); //false ,此时i值为11，k值为20
        // || 短路或   左边符合，右边不执行
        System.out.println((i++<100) | (j+=>100)); //true ,此时i值为11，k值为21
        System.out.println((i++<100) || (j+=>100)); //true ,此时i值为11，k值为20

        //三元运算符
        // 关系表达式？表达式1：表达式2
        boolean is_true = i>j?true:false;
        System.out.println(is_true);





    }
}